import express from 'express'
import cors from 'cors'
import dotenv from 'dotenv'
import connectDB from './config/database.js'
import userRoutes from './routes/userRoutes.js'

// 加载环境变量
dotenv.config()

const app = express()
const PORT = process.env.PORT || 3002

// 连接数据库
connectDB()

// 中间件
app.use(cors())
app.use(express.json())
app.use(express.urlencoded({ extended: true }))

// 请求日志中间件
app.use((req, res, next) => {
    console.log(`${new Date().toISOString()} - ${req.method} ${req.path}`)
    next()
})

// 路由
app.get('/', (req, res) => {
    res.json({
        message: 'Web App API Server',
        version: '1.0.0',
        status: 'running',
        timestamp: new Date().toISOString()
    })
})

app.use('/users', userRoutes)

// 404 处理
app.use('*', (req, res) => {
    res.status(404).json({
        success: false,
        message: `路由 ${req.originalUrl} 不存在`
    })
})

// 错误处理中间件
app.use((err, req, res, next) => {
    console.error('服务器错误:', err.stack)
    res.status(500).json({
        success: false,
        message: '服务器内部错误',
        error: process.env.NODE_ENV === 'development' ? err.message : {}
    })
})

app.listen(PORT, () => {
    console.log(`🚀 服务器运行在端口 ${PORT}`)
    console.log(`📱 环境: ${process.env.NODE_ENV}`)
    console.log(`🔗 API地址: http://localhost:${PORT}`)
})
